<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class test extends CI_Controller {

    public function __construct() {
        parent::__construct();
        session_start();
        $this->load->model('_clienteM');
    }

    public function index() {
        if (empty($_GET["fecha"])) {
            $fecha = date("d/m/Y");
        } else {
            $fecha = $_GET["fecha"];
        }
        $this->formatoFechaBD($fecha);
        $idEstablecimiento = $_SESSION["establecimiento"]["id_establecimiento"];
        $result = $this->_clienteM->getReporteMigracion($idEstablecimiento, $fecha);
        $str = "";
        $sizeCol = array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        foreach ($result as $data) {

            $siezeAux = strlen($data->identificacion);
            if ($siezeAux > $sizeCol[3]) {
                $sizeCol[3] = $siezeAux;
            }

            $siezeAux = strlen($data->id_pais);
            if ($siezeAux > $sizeCol[4]) {
                $sizeCol[4] = $siezeAux;
            }

            $siezeAux = strlen($data->primer_apellido);
            if ($siezeAux > $sizeCol[5]) {
                $sizeCol[5] = $siezeAux;
            }

            $siezeAux = strlen($data->segundo_apellido);
            if ($siezeAux > $sizeCol[6]) {
                $sizeCol[6] = $siezeAux;
            }

            $siezeAux = strlen($data->name);
            if ($siezeAux > $sizeCol[7]) {
                $sizeCol[7] = $siezeAux;
            }
            $siezeAux = strlen($this->setCountryValues('procedencia', $data->id_reserva, $data->id_cliente));
            if ($siezeAux > $sizeCol[10]) {
                $sizeCol[10] = $siezeAux;
            }

            $siezeAux = strlen($this->setCountryValues('destino', $data->id_reserva, $data->id_cliente));
            if ($siezeAux > $sizeCol[11]) {
                $sizeCol[11] = $siezeAux;
            }
        }
        // var_dump($sizeCol);
        $this->formatoFechaVista($fecha);
        foreach ($result as $data) {
            $this->formatoFechaVista($data->fecha_nacimiento);
            $this->formatoFechaVista($data->fecha_ingreso);
            $tipo = ($data->fecha_ingreso == $fecha) ? "E" : "S";
            if (($tipo == "E" && $data->checkin_realizado == 1) || (($tipo == "S" && $data->checkout_realizado == 1))) {
                $str.="{$data->codigo_migracion}\t{$data->ciudad}\t{$data->codigo}";

                $espacio = "";
                for ($i = strlen($data->identificacion); $i < $sizeCol[3]; $i++) {
                    $espacio .= " ";
                }
                $str .= "\t{$data->identificacion}$espacio";

                $espacio = "";
                for ($i = strlen($data->id_pais); $i < $sizeCol[4]; $i++) {
                    $espacio .= " ";
                }
                $str .= "\t{$data->id_pais}$espacio";

                $espacio = "";
                for ($i = strlen($data->primer_apellido); $i < $sizeCol[5]; $i++) {
                    $espacio .= " ";
                }
                $str .= "\t{$data->primer_apellido}$espacio";


                $espacio = "";
                for ($i = strlen($data->segundo_apellido); $i < $sizeCol[6]; $i++) {
                    $espacio .= " ";
                }
                $str .= "\t {$data->segundo_apellido}$espacio";


                $espacio = "";
                for ($i = strlen($data->name); $i < $sizeCol[7]; $i++) {
                    $espacio .= " ";
                }
                $str .= "\t{$data->name}$espacio\t$tipo\t{$fecha}";


                $espacio = "";
                for ($i = strlen($this->setCountryValues('procedencia', $data->id_reserva, $data->id_cliente)); $i < $sizeCol[10]; $i++) {
                    $espacio .= " ";
                }
                $str .= "\t{$this->setCountryValues('procedencia', $data->id_reserva, $data->id_cliente)}$espacio";

                $espacio = "";
                for ($i = strlen($this->setCountryValues('destino', $data->id_reserva, $data->id_cliente)); $i < $sizeCol[10]; $i++) {
                    $espacio .= " ";
                }
                $str .= "\t{$this->setCountryValues('destino', $data->id_reserva, $data->id_cliente)}$espacio";

                $str.="\t{$data->fecha_nacimiento}\r\n";
            }
        }
        $gestor = fopen("public/reporte_migracion/" . $idEstablecimiento . "_reporte_migracion.txt", 'w');
        fwrite($gestor, $str);
        fclose($gestor);
        $f = $idEstablecimiento . "_reporte_migracion.txt";
        $enlace = "public/reporte_migracion/" . $f;
        header("Content-Disposition: attachment; filename=" . $f);
        header("Content-Type: application/octet-stream");
        header("Content-Length: " . filesize($enlace));
        readfile($enlace);
    }

    public function setCountryValues($tipo, $reserva, $cliente) {
        $result = $this->_clienteM->movimiento($tipo, $reserva, $cliente);
        if ($result) {
            $result = $result[0];
            if ($tipo == 'procedencia') {
                return ($result->pais_procedencia == 169) ? $result->ciudad_procedencia : $result->pais_procedencia;
            } else if ($tipo == 'destino') {
                return ($result->pais_destino == 169) ? $result->ciudad_destino : $result->pais_destino;
            }
        } else {
            return '';
        }
    }

}

